home *** CD-ROM | disk | FTP | other *** search
/ Programming Languages Suite / ProgramD2.iso / Borland / Borland C++ V5.02 / 32QUERY.PAK / MACRO.C < prev    next >
C/C++ Source or Header  |  1997-05-06  |  2KB  |  64 lines

  1. // BDE32 3.x - (C) Copyright 1996 by Borland International
  2.  
  3. #include "query.h"  
  4.  
  5. //      The way to use this macro is to include the macro.h header
  6. //      file where you want to use this function. Then pass an IDAPI
  7. //      function as a parameter to the macro:
  8. //
  9. //      #define DBIErr(parm) DBIError(__FILE__, __LINE__, \    //
  10. //                                   #parm, parm) ; \          //
  11. //                                   if ( GlobalDBIErr ) { \   //
  12. //                                       return GlobalDBIErr ;}
  13. //
  14. //      For Example:
  15. //          DBIErr(DbiCreateTable(hDb, bOverWrite, &crTblDsc)) ;
  16.  
  17. DBIResult GlobalDBIErr;
  18. static char szDBIStatus[DBIMAXMSGLEN+1];
  19. static char szMessage[DBIMAXMSGLEN+1+110];
  20.  
  21. //====================================================================
  22. //  Name:   DBIError(module, line, function, retVal);
  23. //
  24. //  Input:  module      - Module name
  25. //          line        - Line number
  26. //          function    - Engine function name
  27. //          retVal      - Result code
  28. //
  29. //  Return: A DBIResult value
  30. //
  31. //  Description:
  32. //          This is function that takes in the information of where
  33. //          the error accured and displays that is a message box.
  34. //          The information listed above explains how to use this
  35. //          function inside of a macro.
  36. //====================================================================
  37. DBIResult
  38. DBIError (pCHAR module, UINT16 line, pCHAR function, DBIResult retVal)
  39. {
  40.     if (retVal == DBIERR_NONE)
  41.     {
  42.         GlobalDBIErr = DBIERR_NONE;
  43.         return retVal;
  44.     }
  45.     if (retVal != DBIERR_CANTFINDODAPI)
  46.     {
  47.         DbiGetErrorString(retVal, szDBIStatus); // Get the error message
  48.         sprintf(szMessage, "Module:\t\t%s\nFunction:\t%s\nLine:\t\t%d\n"
  49.                 "Category:\t%d\nCode:\t\t%d\nError:\t\t%s\n", module,
  50.                 function, line, ErrCat(retVal), ErrCode(retVal),
  51.                 szDBIStatus);
  52.         MessageBox(NULL, szMessage, "IDAPI Error",
  53.                    MB_ICONEXCLAMATION);
  54.     }
  55.     else
  56.     {
  57.         MessageBox(NULL, "Cannot find IDAPI files: Check WIN.INI for"
  58.                    "an [IDAPI] section.", "IDAPI Initialization Error",
  59.                    MB_ICONHAND | MB_OK);
  60.     }
  61.     GlobalDBIErr = retVal;
  62.     return retVal;
  63. }
  64.